package Heap;

import java.util.PriorityQueue;

/**
 * P703 数据流中的第 K 大元素
 * */
public class P703 {
    public static void main(String[] args) {
        int[] a={4, 5, 8, 2};
        KthLargest kthLargest=new KthLargest(3, a);
        System.out.println(kthLargest.add(3));
    }
}
/**
 * 思路就是，从小到大排，第k个数就在队首，只需要保持队首为第k个数就可以啦
 * */
class KthLargest {
    private PriorityQueue<Integer> queue;
    private  int k;
    public KthLargest(int k, int[] nums) {
        queue=new PriorityQueue<>();
        this.k=k;
        for(Integer i:nums){
            queue.add(i);
            if(queue.size()>k){
                queue.poll();
            }
        }

    }

    public int add(int val) {
        queue.add(val);
        if(queue.size()>k){
            queue.poll();
        }
        return queue.peek();

    }
}